using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ItemObject : MonoBehaviour
{
    [SerializeField] private Rigidbody2D rb;//物品刚体
    // 引用物品数据
    [SerializeField] private ItemData itemData;
    // 精灵渲染器组件
    private SpriteRenderer sr;

    // 在编辑器中验证时调用
    // private void OnValidate()
    // {
    //     SetupVisuals();
    // }

    private void SetupVisuals()
    {
        if (itemData == null)
        {
            return;
        }
        // 获取精灵渲染器组件并设置其精灵为物品数据中的图标
        GetComponent<SpriteRenderer>().sprite = itemData.icon;
        // 设置游戏对象的名称为 "Item object - " 加上物品名称
        gameObject.name = "Item object - " + itemData.itemName;
    }

    // 设置物品掉落，物品和掉落位置
    public void SetupItem(ItemData _itemData, Vector2 _velocity)
    {
        itemData = _itemData;
        rb.velocity = _velocity;
        SetupVisuals();
    }

    // 拾取物品
    public void PickupItem()
    {
        if (!Inventory.instance.CanAddItem() && itemData.itemType == ItemType.Equipment)
        {
            rb.velocity = new Vector2(0, 7);
            PlayerManager.instance.player.fx.CreatePopUpText("背包已满");
            return;
        }

        AudioManager.instance.PlaySFX(18, transform);

        // 将物品添加到玩家的库存中
        Inventory.instance.AddItem(itemData);
        // 销毁当前物品对象
        Destroy(gameObject);
    }
}